/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.swing.JOptionPane;
import model.Endereco;
import model.Lotacao;
import util.Conexao;

/**
 *
 * @author Ewerton
 */
public class LotacaoDAO extends GenericDao<Lotacao> {
    
    Conexao c = new Conexao();
    EntityManagerFactory factory = Persistence.createEntityManagerFactory("Controle_de_EstoquePU");
    EntityManager manager = factory.createEntityManager();

    public void salvar(Lotacao lotacao){
        gravar(lotacao);
    }

    public void alterar(Lotacao lotacao){
        atualizar(lotacao);
    }

    public void excluir(Lotacao lotacao){
        Lotacao l = listar(lotacao);
        remover(l);
    }

    public Lotacao listar(Lotacao lotacao){
        return getEntityManager().find(Lotacao.class, lotacao.getIdLotacao());
    }

    public int PegaUltimoRegistro() {
        Query query = manager.createQuery("SELECT max(l.idLotacao) FROM Lotacao l");
        Integer codigo = (Integer)query.getSingleResult();
        if(codigo == null){
            return 1;
        }else{
            return codigo + 1;
        }
    }
    
    public Lotacao buscarPorDescricao(String nome){
        Query query = manager.createQuery("SELECT l FROM Lotacao l WHERE l.descricao = '"+nome+"'");
        Lotacao l = (Lotacao) query.getSingleResult();
        if(l == null){
            JOptionPane.showMessageDialog(null, "Lotação não encontrado");
            return null;
        }
        else{
            return l;
        }
    }
    
}
